	attribute vec3 aVertexPosition;
	attribute vec3 aVertexNormal;
	attribute vec2 aVertexUVs;

	uniform mat4 uMVMatrix;
    uniform mat4 uMVPMatrix;
	
	uniform mat4 uSunPMatrix;
	
	
	uniform vec3 sun_vector;

	varying vec2 aVertexUVs_;
	varying vec3 aVertexNormal_;
	varying vec4 shadow_coord_;

    void main(void) {
        gl_Position = uMVPMatrix * vec4(aVertexPosition, 1.0);
		//gl_Position = uSunMVPMatrix * vec4(aVertexPosition, 1.0);
		aVertexNormal_ = vec3(uMVMatrix * vec4( aVertexNormal, 0.0 ));
		aVertexUVs_ = aVertexUVs;
		shadow_coord_ = uSunPMatrix * vec4(aVertexPosition, 1.0);
		//gl_Position[0] = gl_Position[0] * 0.5 + 0.5*0.0;
		//gl_Position[1] = gl_Position[1] * 0.5 - 0.5*0.0;
		
		//shadow_coord_ = s_c;
		
		//shadow_coord_[0] = (s_c[0]/s_c[3])* 0.5 + 0.5;
		//shadow_coord_[1] = (s_c[1]/s_c[3])* 0.5 + 0.5;
		//shadow_coord_[2] = (s_c[2]/s_c[3])* 0.5 + 0.5;
    }